Data storage systems are arrangements of hardware and software that typically include multiple storage processors coupled to arrays of non-volatile data storage devices, such as magnetic disk drives, electronic flash drives, and/or optical drives. The storage processors service host I/O operations received from host machines. The received I/O operations specify storage objects (e.g. logical disks or “LUNs”) that are to be written, read, created, or deleted. The storage processors run software that manages incoming I/O operations and performs various data processing tasks to organize and secure the host data received from the host machines that is stored on the non-volatile data storage devices.
Some existing data storage systems have provided storage objects that are supported by RAID (Redundant Array of Independent Disks) technology. As it is generally known, RAID is a data storage virtualization technology that combines multiple physical disk drives into a single logical unit to provide data redundancy and/or performance improvement. The multiple physical drives combined to provide a RAID logical space are commonly referred to as a RAID “group”. The number of disks in a RAID group is referred to as the “width” of the RAID group.
In a typical RAID group, all the physical drives in the group have the same capacity, and the entire capacity of each drive is consumed. The storage space within each physical drive is consumed in a uniform way, allowing a fixed formula to be used to conveniently calculate how data directed to the group is to be distributed onto the physical space of the drives in the group, based on a direct mapping between the RAID logical space and physical space on the disks that uses parameters such as RAID type, RAID group width, and the layout of RAID internal metadata.